package ace.module.account.api.model.input;

import ace.module.account.api.enums.IamAccountProfileRegisterSourceFromEnum;
import ace.module.account.api.enums.IamAccountProfileSexEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author caspar
 * @date 2023/3/20 9:12
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RegisterQuickCommonOutInput {

  /**
   * 是否需要更改密码
   */
  @Builder.Default
  @NotNull
  @Schema(title = "是否需要更改密码")
  private Boolean passwordChangeRequired = false;

  /**
   * 密码
   */
  @Builder.Default
  @NotEmpty
  @Size(min = 6, max = 36)
  @Schema(title = "密码", description = "6至36位密码")
  private String password = "123456";

  /**
   * 头像
   */
  @Builder.Default
  @Schema(title = "头像", description = "")
  private String avatar = "";

  /**
   * 注册来源 {@link IamAccountProfileRegisterSourceFromEnum}
   */
  @Builder.Default
  @NotNull
  @Schema(title = "注册来源", description = "0-未知 1-电脑浏览器端 2-手机浏览器端 3-微信公众号 4-微信小程序 5-ios 6-android")
  private Integer registerSourceFrom = IamAccountProfileRegisterSourceFromEnum.UNKNOWN.getCode();

  /**
   * 生日时间戳
   */
  @Builder.Default
  @Schema(title = "生日时间戳", description = "毫秒")
  private Long birthday = 0L;

  /**
   * {@link IamAccountProfileSexEnum}
   */
  @Builder.Default
  @NotNull
  @Schema(title = "性别",description = "1-未知 2-男性 3-女性")
  private Integer sex = IamAccountProfileSexEnum.UNKNOWN.getCode();

  /**
   * 个性签名
   */
  @Builder.Default
  @NotNull
  @Schema(title = "个性签名", description = "")
  private String signature = "";

  @Builder.Default
  @NotNull
  @Schema(title = "昵称", description = "")
  private String nickName = "";

  @Builder.Default
  @NotNull
  @Schema(title = "真实姓名", description = "")
  private String realName = "";
}
